package cn.bugstack.domain.award.repository;

import cn.bugstack.domain.award.model.aggregate.GiveOutPrizesAggregate;
import cn.bugstack.domain.award.model.aggregate.UserAwardRecordAggregate;

/**
 * @author 19872
 * 奖品仓储服务
 */
public interface IAwardRepository {
    /**
     * 保存用户奖品记录
     * @param userAwardRecordAggregate 用户奖品记录聚合对象
     */
    void saveUserAwardRecord(UserAwardRecordAggregate userAwardRecordAggregate);

    /**
     * 查询奖品配置
     * @param awardId 奖品ID
     * @return 奖品配置
     */
    String queryAwardConfig(Integer awardId);

    /**
     * 保存分发奖品聚合对象
     * @param giveOutPrizesAggregate 分发奖品聚合对象
     */
    void saveGiveOutPrizesAggregate(GiveOutPrizesAggregate giveOutPrizesAggregate);

    /**
     * 查询奖品Key
     * @param awardId 奖品ID
     * @return 奖品Key
     */
    String queryAwardKey(Integer awardId);
}
